Читать онлайн книгу "19 смертных грехов, угрожающих безопасности программ"

19 ???????? ??????, ?????????? ???????????? ????????
????? ???????

???? ?????

????? ??????


??? ????? ?????????? ???? ????????????? ???????????? ???????????, ?????????? ?? ?????????, ????? ??? ???? ??????????. ? ??? ??????????? 19 ??????, ?????????? ???????????? ????????, ? ????????, ??? ?? ??? ??????????. ??????????? ?????????? ?? ?????? C/C++, C#, Java, Visual Basic, Visual Basic.NET, Perl, Python ? ???????????? ???????? Windows, Unix, Linux, Mac OS, Novell Netware. ?????? ???????, ????? ?????? ? ????? ???????, ??????? ?????????????, ??? ?????? ?????????? ??? ? ???????? Microsoft. ?? ????????? ???????? ?????????????????? ??? ???? ??????, ??? ? ??????? ?? ??????????? ? ?????? ?? ???. ???? ?? ???????????, ?? ??? ?????? ?????????? ???????? ??? ?????.





????? ??????, ????? ???????, ???? ?????

19 ???????? ??????, ?????????? ???????????? ????????. ??? ?? ????????? ???????? ??????


???? ??????????? ?????. ????? ?? ????? ?????????? ? ?????????, ??????? ???????????, ????? ????????? ????? ? ? ????? ?? ?????? ???? ????, ????????? ???????, ??? ??? ??????? ????? ??????: ?????!?

????? ?????

????? ????, ??????? ???????? ???, ?????? ???? ????????? ??????? ? ????????? ????? ??????.

????? ?????

????. ??? ??????? ??? ???????????????? ??????????? ? ?????? ???? ?? ???? ?????.

????-????




?? ???????


????? ?????? ???????? ??????? ?????????? ?? ???????????? ???????????? ??????????? ? ?????? ?? ??????????? ???????????? ? Microsoft Corp. ???????? ????????? ??????????? ????????? ?????? ????? ?Writing Secure Code? (?????????? ??????????? ????). ?? ????? ????????? ? ????????? ????? ??????? ?Basic Training? ???????? ???? Security & Privacy Magazine? ????????? ????? ?? ??????? ????????? ?Processes to Produce Secure Software? (????????? ? ???????????? ??????????? ???????????? ????????????), ??????????? ???????????? National Cyber Security Partnership ??? ???????????? ???????????? ???????????? (Department of Homeland Security). ?????? ???????????? ??????????? ????? ?????????? ??????????? ???????????? ???????????? ?Microsoft, ????? ????????? ??????? ????? ??????? ????????? ? ????????? ?????????? ????? ???????? ?????????? ????????, ???????? ? ???????? ????? ????? ???????????? ??????? ????.

????? ???????, ?????? ?????????, ? ????????? ????? ???????? ??????? ???????????? ???????? ? ???????? Webroot Software. ?? ????? ?? ??????? ????????? ??????????? ?????????? ???????????? ? ????????????? Microsoft, ???????????? ??????????? Microsoft Office, ????? ? ??????? ?????????? Trustworthy Computing ? ??????? ?????? ??????? ??????? ???????????? ????? ? Microsoft. ????? ???????? ????????? ???? ?Writing Secure Code? ? ?Assessing Network Secu?rity? (??????? ???????????? ????), ? ????? ?????????????? ??????. ? ??????? ??? ?? ????? ?????? ???????? ?????? ?? ????? ????? ?????????.

???? ????? ?????? ??? ???????? 19 ????????? ????????? ??? ????????? ????????. ???? ???? ??????? ???????? ??????? ???????? ?????????? ? ??? ? ?????? ????????? ?????. ???? ???????? ??????????? ? ??????????? ?????????? ???????? Secure Software (www.securesoftware.com). ?? ???? ?? ??????? ?????? ????? ?? ???????????? ???????????? ??????????? ?Building Secure Software? (????????? ??????????? ???????????? ????????????), ? ????? ???? ?Network Security and Cryptography with OpenSSL? (????????????? ? ????????????????? ?????? ? ?????. ?????? ?? ?????? ?????????? OpenSSL?) ? ?Secure Programming ???????? (???????? ??? ????????? ?????????? ????????). ?? ???????? ???????? ??????? ???????? CLASP, ??????????? ???????? ???????? ???????????? ? ???? ?????????? ????????. ???? ??????? ? ???????????? ????????? ??????????? ? ???????????? ???????? ? ????????? ????????? ????????. ?????? ???? ??????? ????????? ????????????????? ? ??????????? ???????? ????? ????????? ? ???????? ???????? ?????????? ? ????????? ????????? ???????????????? (Cyberspace Policy Institute). ???? ?????? ???????? ?????? ???????? ? ??????? ???????????? ???????? ? ????????????, ? ? ????????? ????? ?? ???????? ??? ??????????? ???????????? ??? ????? ? ????????.




? ??????? ??????????


???? ?????????? ???????? ??????? ????????? ?? ???????????? ???????????? ??????????? ? ???????? Symantec Corporation. ?? ??????????? ?????? ?? ???????????? ?????????, ? ?????? ??????? ?????? ???????? ?????? ?????? ??????? ????????????? ? ????? ????????? ?????????? ??????????, ??????? ????????? ????? ? ???????????? ?????????? ??????? ?? ??????? ????????. ?? ????????? 20 ??? ???? ??????? ??? ??????? ????????????? ???????????? ?????????. ?? ????????????? ? Symantec ?? ????????? ????????????, ??? ?????????????????????? ? ???????? ??????????????? ?????? ?????? ?????????, ?????????? ?????????? ????????? ? ???????, ? ????????? Microsoft, IBM, Tektronix, Step Technologies. Screenplay Systems, Quark ? Continental Insurance. ?? ??????? ??????? ??????? ????????? ? ??????? ?????????????? ??????? ? ???????????? ??????????????? ?????????, ???? ????????.

????? ?. ????? ????? ??? ?????????? ????????????????? ???????????? ??????? ?????????? ???????? ??? ?????? ? ?????????? ??????, ? ??? ????? ????? ??????? ? ??????????? ? ??????? ??????? ????????????. ?? ??????? ? ?????????? ????? ?Software Inspection: An Industry Best Practice? (?????????? ????????: ????????? ????), ? ????? ???? ?Ada95: The Lovelace Tutorial? ? ?Secure Programming for Linux and UNIX HOWTO? (???????? ??????????? ???????????????? ??? Linux ? UNIX?). ????????? ? ???????? ?????????.




???????????


? ?????? ?????? ??????????? ????? ????????????? ? ????????????????? ????????? ?????. ?????? ?? ???????, ??? ????????? ????? ????? ???? ???, ??? ?? ??? ?????????????????. ?? ????? ???? ??? ???? ???????????? ?????????. ??????????? ?????????? ?????? ?????????? ? ?? ??????????? ??????????? ????? ????????? ????????, ??? ????? ??????? ?? ?????? ???? ? ??????? ??????????? ????? ????????? ??????????? ?????. ? ?? ????????? ?????????? ?? ??, ??? ??? ??? ???????? ?????????.

????? ???? ???????????? ??????????? ????? ????????? ??????, ???? ??????? ??? ???????? ?? ???, ??? ????? ?????, ???, ?? ??????? ????, ?? ????????????? ????????? ????????????. ??? ?????? ?????? ? ??????? ????????????????, ??? ????? ????????? ? ????????? ???????????? ? ????? ?????? ????????????. ??????????? ??? ????? ?????????: ?? ???????? ????? ???????, ? ????? ?????? ????? ????????????, ????? ??????? ????? ?? ????????????, ?? ???????????? ??????, ???????????? ?????????? ????????? ? ??????? ???????????? ???.

???? ????? ????????? ??????????? ?????? ????????????????? ???? ??????, ?? ????? ?????? ???? ?? ?? ?????? ? ?? ????? ??? ????????. ?? ????? ?????????? ?????????? ??????, ????????????? ?????????? ?????? ?? ???????????? ?????? ?? ?????? ??, ????????? ????? ????????????? ????????, ?? ??? ??? ?????? ??????? ?? ??????? ??????????????? ????????? ????????????. ? ???? ?? ???? ???????????? ????????? ???????? ???????? ? ?????????? ????? ?????? ?? ????? ????????? ?? ?????????? ??????? ?????????? ???????????? ???????????? ???????????.

?????????? ???? ??????, ??????????? ? ????????????,?? ?????????? ?????? ??? ??????????? ?????? ???????? ?????? ??????????. ? ???? ???????? ??? ????? ????????, ???, ???? ??? ???? ????? ?????? ?????????? ? ????? ???, ????? ????????? ????? ??? ???? ?????. ??? ?? ???????? ? ???????? ????????? ? ????????????!

???? ?? ????? ???????? ????????? ? ????? ?????? ??????, ????????? ? ?????????????, ?? ?????? ????????? ??????? ?? ????????????? ? ?????????? ????????????, ???????????? ???????????, ? ??? ???? ?????? ???????? ???????????. ? ???????????? ???????????? ??????????? ???????? ?????? ???????? ????, ? ??? ????? ? ???????? ?????????? ???????. ?? ? ??????? ??????????? ?? ??????????? ? ??????? ???? ?????????, ? ?????????? ????????????? ????????? ????? ?????????? ?????? ???????, ?????? ??????? ??? ?????? ???????? ???????? ????? ???????? ? ???????????? ????????. ???? ? ???, ????? ???????? ???????? ???????? ????????, ??????? ???????? ?????????, ? ?? ??????? ?????????????? ?????? ?????????? ?????? ????????????.

? ???????? ??????????? ?????? ? ???????????? ???????????? ???????????? ? ???????? ????? ????? ????????? ???????? 19 ??????? ????????????. ?????????????? ?????? ??? ??????? ????????? ????????????? ??? ? ??????????? ? ??? ???????, ??????? ???? ????? ???????? ????????????, ?? ?? ?? ??? ????????? ? ????? ????????. ? ??? ????? ?????? ??????. ? ??? ?????????? ?????? ???????, ?? ??????? ??????????????????????? ?????? ?????????? ? ?????? ???????, ? ?????? ????????????, ??? ?? ????????? ?????? ????????????? ???? ???????. ? ????? ????? ????????, ??? ??????? ???????? ??????: ??????????? ??????? ???? ??? ????????????. ???????? ??????? ? ??????? ??????? ? ??????, ?????? ????? ???????????, ??? ????, ? ???? ??????? ?? ???? ??????. ?????? ????????? ???????? ??????, ????? ??????????? ?????? ???????? ?????? ???????? ???????????????? ????????, ?? ??????? ???????? ???????????? ??????????? ????????. ???????, ??? ?????????? ????????????? ?????? ??? ????? ? ????????????? ?? ??? ?????????? ?????????????? ? ??????, ? ???????? ?? ????????? ????????????.

???? ?????,

?????? ?????????

?????? ???????????? ?????????????????

???????????? ???????????? ????????????

????? ?????, ?????????,

21 ??? 2005 ?.




?????????????


??? ????? ? ????????? ????????? ?????????????? ????? ??????. ?? ?????????? ??? ?? ??, ??? ?? ????? ?????? ? ???????????? ???????????? ???????????? (? ?????) ?? ????? ??? ?????????, ????? ???????? ???????? ? ????????? ???????????? ???????????? ???????????. ?? ????? ???????? ??????????????? ????????? ???????????? ? ??????? ???????????? ?? ???????, ? ??????? ??? ????????????? ????????? ????????? ????, ?? ?? ???????? ? ?? ??????????? ???????????: ?????? ??????? (David Raphael), ????? ????? (Mark Curphy), ???????? ???? (Rudolph Arauj), ????? ?????????? (Alan Krassowski), ?????? ?????? (David Wheeler) ? ????? ?????? (Bill Hilf). ??? ????? ?? ?????????? ?? ??? ????????????? ??????????? ???????????? McGraw?Hill. ??????? ??????? ???? ???: ????? ???????? (Jane Brownlow), ????????? ???? (Jennifer Housh) ? ????? ???????? Qody McKenzie).




????????



? 2004 ???? ???? ?????, ????? ????????? ?????? ???????????? ????????????????? ???????????? ???????????? ???????????? ???, ???????, ??? ????? 95% ???? ???????? ????????, ??????????? ? ????????????, ??????????? ?? 19 ???????? ??????, ??????? ??????? ?????? ???????. ?? ?? ?????? ?????????? ???????? ???? ???????????????? ??????????? ? ????????? ???????? ??????????? ???????????? ??????????? ? ??????????? ??????????????? ????, ?? ? ??? ??? ?????????, ?? ???????? ???????? ???????? ?????? ? ??????????? ???????? ???????????????? ?????? ? ????? ??????????? ????.

?????????? ??????????? ??????, ?????????? ????????????, ??????? ? ???, ??? ????????? ?? ????? ?????, ? ?????????? ????? ??????????? ?????????? ??????? ????? ???? ???????? ?????????????????. ????? Blaster ???? ???????????????? ???? ?????? ????? ? ???? ??????? ????.

???? ?????????? ???????? ???? ??????????? ???? ????? ??????, ??, ????????, ??? ??????? ?? ???: ???????? ???? ????????????????, ??????? ????????? ?? ???????? ??????? ????????? ??????????, ??? ?????? ??????? ?????? ???. ?????????? ????? ?????????? ? ???, ??? ????????? ?????????? ??????????? ???????????, ?? ? ?????? ????????? ????? ???????? ?? ??? ???? ?????? ???????, ? ??????? ??????????????. ? ??? ?? ???? ??????????? ? ?????????, ??????? ? ?????????????? ?????, ? ??????? ??????????????? ?? ??? ???????? ????????.

??????? ??? ???? ??????, ?? ????????? ?????????????? ????????? ??????, ??????? ?? ????????? ?? ?????????? ?? ?????.

? ????????. ?? ?? ??????? ????? ?? ?????? ????????. ????? ?? ?? ??????? ?? ?????????? ? ???? ???, ?? ???????? ????????? ? ?????? ????? ?????. ?????? ?????, ?? ?????? ?????? ??????? ???? ?????? ??????????? ? ? ?????????? ?????. ??????? ?? ?????????? ? ????, ????? ????? ?????? ?????????? ????? ???? ?????? ? ??????.

? ?????????. ??? ????????? ??????????? ???????: ???????????????? ????????????? ?? ??????, ?? ?????? ??????? ????? ????????? ?? ??????. ??? ???????? ???? ?? ????? ????????????.

? ????????????????????. ???????? ? ??? ?????, ??????????? ????? ????? ??????? ?????????????? ?????????, ?????????? ??? ??????????? ?????? ???????????? ?????? ? ????????, ?????????? ?? ?????? ??????. ?? ??????, ????? ??? ????? ???? ??????? ???? ?????????????, ??????? ?????????????? ??????? ????????? ? ??????????? ????????? ???????????? ??????.

? ???????????. ????????? ??????????? ???????: ?? ???????? ??????? ?????? ? ??????????, ??????? ?????????? ?? ?????? ??????.




????????? ?????


? ?????? ????? ??????????? ???? ????????? ?????. ???????? ??? ????? ?? ???????????, ?? ????? ??????? ?? ?????????? ? ?????? ?????. ????? ??????? ?? ???????:

? ?? ??? ??????? ????? ? ??????? ????????, ? ??????? ???????????, ?????? ?????? ?????? ????????? ??????;

? ???? ?????????? ???????????? ? ??????????? ???? ????????; ?????????????? ??????, ??????? ??????? ?? ?????;

? ????????????? ????? ????? ? ???????? ??????, ???????????? ??????? ?????;

? ???????? ?????????? ???? ? ?????????? ??????? ?????? ? ??????????, ?????????? ?? ?????? ?????? ? ?????????? ?? ?????? ??????????;

? ???? ?????? ?????? ? ?? ??? ????? ?????? ????? ???????? ???????? ??? ?????? ? ????????? ???????? ??????;

? ?????????? ?????? ?? ????? ??????? ???? ??? ??? ???????: ??? ????? ????? ? ????? ????. ?? ????????, ??? ???????????? ? ???? ???????, ??????? ????????? ?????? ???? ?????? ??????? ? ?? ????;

? ????????????? ? ??????????? ??????????? ? ???????? ????????????, ??????? ???????? ?????????? ???????? ???????????????? ?????;

? ???????? ?? ???????? ????? ? ???????? ??????? ??????? ?????, ?????? ?? ???? ?????? ???????? ??????????? ? ?????? (Common Vulnerabilities and Exposures ? CVE) (www.cve.mitre.org). ?????? BugTraq (www.securityfocus.com) ??? ???? ?????? ??????????? ? ?????????? ? ????????? ????????? ???????? (Open Source Vulnerability Database) (www.osvdb.org). ? ?????? ?????? ?? ???????? ???? ???????????. ??????????: ???? ?? ???????? ??? ???? ??????, ?????????????? ?????? ?? ?????? ? 15 ??????? 2005 ???? ?? ??????? CAN ? ???? ?????? CVE ? ???????? ????????????? ?? ?????? CVE. ???? ??? ????????, ?? ??? ?????? ?? ????? ?????? ?CAN?? ??????? ???????? ??????? ?? ??????????????? ????? CVE. ????????, ???? ?? ?? ??????? ????? ?????? CAN?2004?0029 (?????? Lotus Notes ??? Linux), ?????????? ???????? CVE?2004?0029;

? ??????????? ????? ? ??? ????????? ??????, ????? ?????????? ?? ?????. ? ? ???? ?????? ?? ????????????? ???????? ??? ?????? ??????;

? ??????????????? ???????? ????? ? ?????? ????, ??????? ????? ???????????. ??? ?? ?????????? ??????, ?? ?????? ?????????? ??????????????? ????????????? ????????, ???? ?? ?? ??????? ?????????;

? ??????? ???????? ? ??? ????????? ??????, ??????? ?? ???? ?????? ?? ?????? ????????? ??????????: ????? ????, ?????? ? ?????;

? ??????? ? ??? ???????????? ????? ?????, ??????????????, ??? ?? ?????? ? ??? ????? ??????????. ????? ?????????? ?????? ?????????????, ??????????????? ? ????????? ???????? ??? ????????? ?????? ??? ??????? ????????????? ????. ?? ??????? ????????????? ???????? ????? ???????! ?????????? ???? ?????? ??????? ??????? ? ?????????? ?.




???? ????????????? ??? ?????


??? ????? ?????????? ???? ????????????? ???????????? ???????????. ? ??? ??????? ???????? ???????????????? ??????, ?????????? ? ????????? ????????????, ? ????? ??????? ?? ?????????? ?? ????, ??? ????????? ????? ???????? ?????????. ?? ??????? ????? ???????? ???????? ??? ??????????? ?? ????, ?? ????? ????? ??????, ???? ?? ?, ?++, Java, ?#, ASP, ASP.NET, Visual Basic, PHP, Perl ??? JSP. ??? ????????? ? ???????????? ???????? Windows, Linux, Apple Mac OS X, OpenBSD ? Solaris, ? ????? ? ????? ????????????? ??????????: ???????? ????????, ??????? ???????? ??? ????????????? Web. ?????? ??????, ???????????? ?? ??????? ?? ?? ?????, ?? ?? ???????????? ???????, ?? ?? ?????????. ???? ??? ??? ???????????, ?? ???????????? ?????????? ????? ??????.




????? ????? ??????? ?????????


??? ????????? ??????, ??????? ?? ????????. ???????? ?? ???????, ???? ??????? ?? ??????, ??? ??? ????????? ???????? ? ???????.

?? ??? ?? ???? ?????, ??????? ?????????? ???? ????????? ????? ? ????????? ?????, ??????? ?????, ????? ? ?????? ??????? ?? ?????? ? ???, ??? ?????????? ?????? ??? ?????? ????? ????????????????, ????? ?? ? ????? ????? ?????????? (Web ? ?. ?.).

??? ???????, ? ??????? ???? ???????????? ??? ????????? ?????????????? ? ????????? ????? ??????.

? ???? ????????????? ???????????? ? ??????? 6, 12 ? 13.

? ???? ?? ?????????????? ???????? C/C++, ?? ??????? ???????? ? ?????? 1, 2 ? ?.

? ???? ?? ?????????????? ??? Web ? ?????????????? ????? ??????????, ??? JSP, ASP, ASP.NET, PHP, CGI ??? Perl, ?? ????????????? ? ??????? 7 ? 9.

? ???? ?? ???????? ?????????? ??? ?????? ? ?????? ??????, ???????? Oracle, MySQL, DB2 ??? SQL Server, ???????? ? ????? 4.

? ???? ?? ?????????????? ??????? ??????? (???????????????, ????? Web ? ??????), ?? ????????? ???? ?????? 5, 8, 10, 14 ? 15.

? ???? ? ????? ?????????? ??????? ??????? ???????????? ???????????? ??? ??????, ???????? ???????? ?? ????? 8, 10, 11, 17 ? 18.

? ???? ???? ????????? ???????? ? ?? Linux, Mac OS X ??? UNIX, ??????? ???????? ? ????? 16.

? ???? ? ????? ??????????? ????? ???????? ????????? ????????????, ????????? ?? ???????? ????? 19.

?? ????????, ??? ??? ????? ?????, ????????? ? ?????? ??? ??? ??????? ??????? ???? ???????? ???????????? ?? ??????????? ???? ????????????????????? ? ????? ????????????, ? ????? ??????, ??? ??? ?????????? ??? ???????????????? ????? ? ????????? ??? ????????????? ????????. ????????, ??? ?? ??????? ????? ?????? ???????? ??????????.

????? ??????, ????? ???????, ???? ?????, ???? 2005 ?.




???? 1.

???????????? ??????





? ??? ??????? ????


??? ????? ????, ??? ???????????? ?????? ? ??? ???????? ???? ?????????????? ?????? ????????????????. ????????? ??? ??????, ??? ? ????? ????????????? ?????? ? ?????????? ? ?????? ?????????? ????????? ??????????, ? ? ?????????????? ????? ???????? ?????? ?????? ? ??????. ? ? ?++ ?????? ?????? ?????? ???????? ?? ???????????? ??????.

?????? ??????, ???????????? ?????????, ????? ????????? ???????? ?????? ? ??????, ?? ????????????? ??????????? ??????, ?? ???? ? ??? ?????? ??????, ?????????? ? ???? ?? ???????. ???? ?? ???????? ?????????? ??????? ? ????????? ???????, ?? ?????????? ?? ? ???????? ????? 2. ??? ???? ?????????? ??? ?? ???????? ???????????, ????? ?????????? ????????? ?????? ? ???????????? ??????? ?????? ?? ????????? ?????????? ???????. ? ???? ????????? ??? ?? ???? ???????????? ???????????? ??????, ?? ?????????? ????? ? ???? ??????.

??????????? ???????????? ?????? ????? ????? ??? ?????? ? ?? ????? ????????? ?? ????????? ??????????? ??????? ???????? ??? ???????????, ? ???? ?????????? ???????? ?? ????? ???????????? ? ??????? ??????? ??????? (root, Administrator ??? System), ?? ? ??? ???? ???????????? ???????? ? ??????? ??????????????. ???? ??????????????? ?????????? ? ??? ??????? ??????, ?? ?????? ????? ???????? ? ??????????????? ?????. ?????? ?????????? ??????? ??????????? ????????????? ?????????????? ?????? ? ??????? finger, ?? ??? ? ????????? ? ?finger?????? ??????? ?. ??????? (??? ?????? ?????? ???????). ???????? ??, ??? ????? ???? ??? ? 1988 ???? ???????? ??? ????????? ?? ??????, ?? ??? ?????? ????????? ???????? ???????????? ??????, ?? ? ?????? ??????? ?????????? ????????? ? ?????? ???? ??????? ? ????? ?????? ??????????.

???? ?????, ????? ??????, ??? ????? ?????? ??????????? ???? ????????? ? ??????????? ?????????????. ?????? ?? ????? ???? ??? ???????? ??????, ??????? ?? ?????? ??????????, ? ??????, ??? ?????????? ????? ?????????????? ?? ? ??? ?++, ????? ????????? ???? ??? ?? ???????? ????? ????????. ????? ???? ?????, ??????? ???? ?????? ?????????????, ??? ?????? ?????????? ???, ??? ??????? ??????? ????????? ?????????, ? ??????? ???? ???????????? ?? ???? ??????? (off?by?one overflow). ???? ????? ??????, ????? ???????????? ???????????? ????????? ??????, ?? ??? ???? ??? ?????, ????????? ????? ????????? ??????????? ?????????, ????? ??? ?????? ?? ???????? ?????????????.




???????????? ????? ?????


???? ????? ???????????? ?????? ??????????? ? ??????????, ?????????? ?? ?, ???????? ?? ???? ??????? ? ?++. ?????? ?????? ??????????? ????? ? ???????????? ?????????, ????????? ??? ??? ?????? ??????? ????????????????? ??????????. ?? ????????, ?++ ??? ?? ???????????, ??? ? ?, ????????? ??????? ?? ???? ?????. ?? ????????????? ??????????? ?????????? ???????? STL ????????? ?????? ???? ???????????? ?????? ?? ???????? ? ????????, ? ????? ??????? ?????????? ?++ ???????? ???????????? ???????? ????????? ??????. ???? ???? ???? ????????? ?????????? ?? ?????? ?, ?? ??? ?? ??????????? ???????????? ?????????? ?++, ????? ???????? ??? ????? ?????? ??????.

? ?????? ????? ???????? ??????, ??????????? ?????, ??????????? ??? ?? ????? ??????? ??????? ? ??????, ???? ?? ??? ? ?????????? ?????????????? ???????????????????. ? ????? ?????, ??? Java, ?# ? Visual Basic, ??? ???????? ????????? ???, ??????? ? ????????? ?????? ?? ??????? ? ?????? ?? ?????? ?????? ? ?????? (? ??????????? ??????). ????? ????? ???????, ??? ? ????? ?????? ???????????? ?????? ??????????, ?? ?????????? ???? ?? ???????, ??? ??? ???? ??????? ????? ????????. ???? ? ??????????? ????? ??? ????? ??????????? ?? ? ??? ?++, ? ?????? ? ?????????? ????? ????? ???????? ???????????? ??????. ??? ???? ????????????? ???????? ???????? ??????????? ? ???, ??? ?? ??????? ?????? ??? ??? ??????????????? ????? ?????? ?????????? ? ???????????? ???????, ? ?? ?????? ????? ????????? ???????? ?? ? ??? ?++. ???? ?# ????????? ?????? ??????????? ????????? .NET, ??????? ???????????? ??????? ? ??????? ????????? ????? unsafe. ??, ??? ???????? ?????????????? ? ???????????? ???????? ? ????????????, ??????????? ?? C/C++, ?? ???????????? ????????? ??????????? ????????? ??????? ??? C/C++ ??????. ???? ???? ?? ?????????????? ??????????????? ?? ?????? ???????? ??????, ?? ????????????? ?? ??????????? ???????? ??????, ???????????? ??????? ???????????, ???? ?? ?????? ????? ??????? ???????????? ? ??? ??????.

?? ?? ?????? ????????? ????????????? ?????? ??????, ???????????? ??????? ???? ???????????? ??????, ?????? ????, ??? ? ?? ????? ????????? ??????????? ?????? ??????.




??? ?????????? ????????????



???????????? ?????????? ???????????? ?????? ? ??? ????????? ?????. ? ????????????????? ????????? ???? ???????????? ??? ???????? ??????????? ?????????? (????????, ??????????). ????? ????????? ????? ????? ???????? ?? ??????? ?, ????????? ????? ????????? ? ??????????? ????????? ?86 ????????, ???? ?? ????? ?????? ? ??????? ?????????? ???????? ??? ?????????? ????????. ???, ? ????? ?? ?????????? ?????? ??? ????????? ??????????. ?????? ?? ??????????? ???????? ?????????? ??????????????? ? ????????????????? ???????????? ??????, ?????????? ?? ????. ????? ????? ??????? ? ???????????? ???????????? ??????, ?? ???? ????? ????? ? ???? ???????????? ?????? ? ?????. ???? ???????? ? ???, ??? ???? ?????????? ???????? ?????? ?? ???????? ???????, ??????????????? ? ?????, ?? ????????? ???????? ??????????? ???????? ??????????? ??????????. ? ??? ??? ???????? ??????, ???? ???? ?????????? ? ?????????????? ??????????? ?????? ?? ?????? ??????????.

????????? ??????: ?????? ?? ?????????? ???????????? ????? ???????? ??????? ????????? ???????? ????????, ?? ??????? ???? ????????, ????? ???? ??, ??????? ?? 64?????????? ????????? Intel Itanium, ??? ????? ???????? ???????? ? ????????. ?? ????? ???????? ?? ????????? ? ??????? ???????? ?????????????, ???? ?? ?????? ?????? ??? ???? ?????? ??????????????, ??? ????????? ?64 ? ????? ?????? ?????? ??????????.

????? ????? ????????, ?????? ?? ?? ????????? ?? ?????, ?????????????? ??????? ???????? ???????? ? ??????????? ?????? ?????? ? ???????. ???? ? ???, ??? ??? ?????? ?????????? ?????????????????? ??????????????? ?????? ???????????? ??????. ???????? ??????????: ?????? ???????????? ????? ????????, ? ???????? ??????????????? ????????????, ?? ????? ???????? ??????, ? ???????? ????? ???? ? ?? ?????????????? ?????. ?????? ???????? ?????? ???? ????????????? ??????????? ?++ ? ???????????? ??????????? ??? ???? ???????????? ??? ?????? ?? ???????? ? ????????????? ????????. ????????, ? Web???????? Internet Information Server (IIS) 6.0 ????????? ???? ??????? ?????? ?????????? ? ?????????????? ????????? ???????; ???? ???????? ??????????? ???? ??????, ??? ???? ???????? ???? ???????, ???? ? ??? ???? ???????? ???? ?? ???? ???????????? ??????. ???? ??? ??????? ??????? ??? ???, ? ?? ??? ???? ????? ?????? ????? ??????? ?? ???? ???????????? ?? ?????? ????????? ? ????????? ? ??? ?????????????. ????????? ??????????? ??????????? ????? ???????? ? ?????????? ????????, ?? ?++ ?????? ????? ????????? ????? ??????????? ???.

?? ???????? ??????, ?????????? ??????.



tinclude

void DontDoIhis (char* input)

{

char buf[16];

strcpy(buf, input);

printf("%s\n? ,?buf);

}

int main(int argc, char* argv[])

{

// ?? ?? ????????? ?????????

// ? ???? ??? ??????? ?? ?????????, ? ??????? ????????????

// ??????? strcpy?

DontDoThis(argv[l]);

return 0;

}


????????????? ??? ????????? ? ?????????, ??? ??????????. ??? ???????????? ????? ?????? ??????????, ??????? ?????????? ??????? ? ???????? ???????? ?????. ??????? ?????????? ????????? ?? ???????? ????? ???????? ???????, ??? DontDoThis, ???????? ???? ??? ?????????? ?????? ???? ???, ??????? ??????????? ????? ???? ?????????. ??? ??? ???????? ???? ??????????????? ????? ??????? strcpy:



0x0012FEC0? ?8? fe 12 00 ..
0x0012FEC4? ?4 18 32 00 .2.
0x0012FEC8? d0 fe 12 00 ..
0x0012FECC? 04 80 40 00? .<>@.

0x0012FED0? el 02 3f 4f???? .?0

0x0012FED4 ?66 00 00 00??? f?
0x0012FED8? e4 fe 12 00???? ..
0x0012FEDC? 3f 10 40 00? ?.@.
0x0012FEE0? c4 18 32 00??? .2.
0x0012FEE4? cO ff 12 00???? ..

0x0012FEE8? 10 13 40 00? ..@.

????????, ??? ???? ?????? ?????? ???? (?? ??????? ??????? ? ???????). ???? ?????? ?????????? ?? ?????????? Intel ?? ?????? ????????? ?little?endian?. ??? ????????, ??? ??????? ???? ???????? ? ?????? ??????, ??? ??? ????? ???????? ?3f104000? ?? ????? ???? ???????? 0x0040103f.

? ?????? ?????????, ??? ??????????, ????? ????? buf ?????????????. ????? ????? ?? buf ????????? ??????????? ???????? ???????? EBP (Extended Base Pointer ? ??????????? ????????? ?? ????). ??? ???????? ????????? ????? ?????; ??? ?????? ?? ???? ??????? ??? ???????? ????? ???????. ???? ????????? ?????? ???????? ???????? ??? ???????? ??????, ???????????? ? ?????? 0x0012fe00 (????????? ???? ?????????? ?????? ???????), ?? ????????? ???????? ?? ????? ?????? ? ???????? ?????????? ???? ??????????? ???.

???? ?? ?????????????? ????????????? ?? ???? ????, ?? ????????? ????? ?????? ????? ????????. ???? ????? ????????? ?????? ???????? ???????? ??? ???? ????????? ? ???????? ? ?????, ????? ???????? ????????, ??????????? ????? ?????? ????????????? ????, ?? ?? ????? ????? ???????????? ?????? ???????????? ??????, ???????????? ????????? ?????????. ???????, ??? ???????????? ??? (??? ?????? ???????? shell??????, ?????? ??? ???? ????? ?????? ????????? ? ???????? ?????? ? ???????? (shell)) ????????????? ????????? ?????? ? ???????????????? ??????. ??? ???????? ??????, ??, ?????? ??????, ??? ????? ???????? ? ????? ????? ????? ?????????. ?? ????????????, ???????, ??? ???????????? ????????? ?????? ????? ????????? ???????.

????? ???? ??? ????? ???????? ?????????, ? ???????????? ?????????? ??????????? ????????? ????????? ???????. ???? ??????? ????? ????????? ??????? ??????? ???????????? ?????????? ?? ?????????, ?? ??????????? ????? ??????????????? ???????????. ??? ??????? ????? ? ????, ???????? ????????????? ????? ??????? ?????? ? ????????????? ?????, ??? ????????? Stackguard ???????? ??????? (Crispin Cowan), ????????? ProPolice, ???????????????? IBM, ? ???? /GS ? ??????????? Microsoft.

??? ??????, ?? ???????????? ?????????? ??? ??????? ??? ??????????? ???????? ???????? ??? ????? ???????????, ? ??? ???? ???? ????? ??????? ???????. ???? ? ????? ???????? ?????? ?????? ?++ ? ???????????? ?????????, ?? ?????? ???????? ??????? ?????????? ?? ??????????? ???????; ????? ?????? ???? ????? ???????????????. ???? ????? ?? ?????????? ??????? ???????? ????????? ?? ???????, ??? ????? ?????? ? ??????? ???????? (????????, ? X Window System ??? Microsoft Windows), ?? ?????????? ????? ????????? ????? ??????????????????????? ?????? ???????? ???????? ??? ???????????.

???? ????????? ?????????? ???????? ??????????? ?????????? ??????????, ??????? ??????, ??? ???????? ????????? ??? ?????? ??. ?????????? ?????????????? ????? ????????????? ? ????????, ?????????? ???????????? ? ??????. ? ????? ?????? ?? ?????????? ???????, ????? ??? ????????? ????? ??????? ??? ???? ????????? ????? ?? ??, ????? ?????????, ??? ????????? ???? ????????? ?????? ??, ??? ????? ???. ???? ????????? ????? ???????? ??????, ?????????? ??????, ????? ????????? ?? ?? ????? ????????? ???????. ????? ?????? ????? ??????? ?? ??, ????? ???? ? ????? ????????? ?????????? ? ??????? ??????. ? ??? ??????? ? ????? ???????, ??? www.metasploit.com, ??????????? ? ????????? ??????? ??????? shell????, ??????? ????? ?????? ??? ?????? ? ??? ???? ???????? ?????? ??????? ?? ????????????? ??????.

???? ?? ??????????? ????????, ????? ?? ??????? ???????? ??? ??????? ?????????, ??, ?????? ?????, ?????????? ????? ????? ????????. ? ??????????? ?????? ????? ???? ????????, ??? ????????? ???? ???????, ???? ?? ???????????? ????????? (??? ????????? ?? ????? ??????? ???????????? ???????), ????? ???????? ??? ??? ????????. ????? ????? ????? ? ???????????? ??????????, ??? ??? ?????????? ???????????? ???????? ??????????.

??????, ????? ????, ? ???, ??? ????? ?????????? ? ????????? ??????! ??????? ??? ?????????, ??? ??????????? ? ????? ????????? ???????? ???? ?????? ????????? ? ? ??????????? ??????, ????????? ? ?????????????. ????? ????? ????? ??? ???? ??????? ??????? ????????????? ????????? ????? ??????. ? ????????? ??????? ??????? ?????? ???????, ? ?? ????????? 20 ????????????? (???????? ??????? ?????? ?????? ????????????), ?????, ????? ?? ?????????? ??????, ????????? ???????????? ??????? ???????? ?????????????? ????, ??? ??? ??? ????? ???????? ????????. ????? ???????? ?? ???????????? ????????, ??? ???????? ????????????? ????, ??? ??????????? ???????????? ??? ?????? ???????????? ? ??? ?????? ???? ?? ????????????. ??????? ?? ??????? ???? ???????!

?????????? ???????? ???? ??????????????? ????? ????????? ?????????. ?? ??????????? ??????? ?????????? ?????? ?? ????? ???????????? ????????????? ? ???, ?????????? ?? ?????? ????????? ????????? ????????? ??? ??????, ????? ????????? ????, ????????? ? ??????????? ?, ??? ?????????, ??????????????? ????????.

?????????????? ???????????, ????? ???????????? ?????? ? ???? ?? ??? ??????, ??? ?????? ? ?????. ??? ?????????? ???????????. ??????????? ?????????? ???? ???????? ??? ?? ??????????????? ???????, ??? ? ????,?? ???????????????? ? ??????????? ?????? ???????? ??????. ????? ????? ????????? ???????? ???? ????????? ?????? ????????? ??????????? ????? ?? ?????????? ?? ?? ??????. ?????? ????? ?? ???? ???????? ??????. ??????? Matthew ?shok? Conover ? Oded Horovitz ??????????? ????? ????? ??????????? ?? ??? ???? ??? ????????? ?Re?liable Windows Heap Exploits? (????????? ???????? ???????????? ???? ? Win?dows?), ??????? ????? ????? ?? ???????? http://cansecwest.com/csw04/csw04?Oded+Connover.ppt. ???? ???? ??? ???????? ???? ?? ????????? ?????????, ? ???????? ???????? ?????? ????? ?????????? ????????? ?? ??????? ??? ?? ??????????, ? ??????? ???????????? ??????????. ???????? ???????????? ???????????? ???? ????????? ???????????? ? ??????? ?????, ?????? ?? ??? ???? ?? ????? ???????????????? ????????? ??????.




??????????? C/C++


? ?????????? ?? ?????? C/C++ ???? ????? ???????? ??????????? ?????. ??? ??????, ?????????? finger?????? ???????:



char buf[20] ;

gets (buf) ;


?? ?????????? ???????? ??????? ??????? gets ??? ?????? ?? ???????????? ????? ??? ????? ??????????? ?????. ??????????? ?????? ????? fgets. ????????, ?????? ?? ???????????? ?????? ??????? ???????????? ? ??? ??????????????? ???????? strcpy (??. ?????????? ??????). ? ??? ??? ??? ????? ??????????? ?? ????????????:



char buf[20];

char prefix[] = "http://";

strcpy(buf, prefix);

strncat(buf, path, sizeof(buf));


??? ????? ?? ???? ???????? ? ????????? ?????????? ??????? strncat. ?? ????? ???????, ??????? ???????? ???????? ? ??????, ? ?? ????? ????? ??????. ??? ??? ???? ???????????????? ???, ?????????? ? ????????????:



char buf[MAX_PATH];

sprintf(buf, "%s ? %d\n", path, errno);


???? ?? ??????? ?????????? ????????? ???????, ??????? sprintf ????? ?????????? ???????????? ?????????. ??? Microsoft Windows ???? ???????? ????????? ? ??????????? ??????, ????????? ? ??????????? sprintf ??? ??????????? ????????????????. ??????????? ??. ?????????? MS04?011 (?????? ?????? ????????? ? ??????? ??????? ????????).

? ??? ??? ??????:



char buf [ 32] ;

strncpy(buf, data, strlen(data));


??? ???????? ? ????????? ????????? ???????? ????? ???????? ??????, ? ?? ?????? ???????? ??????!

??? ???? ?????? ??????????? ? ????????? ? ?? ?????? ??????? ????? ?????? ????????. ???? ?? ????????? ? ?????????? ASCII, ?? ????? ???? ??? ???????, ?? ? ????????? Unicode ???? ?????? ?????????????? ????? ???????. ??? ??????:



_snwprintf(wbuf, sizeof(wbuf), ?%s\n?, input);


????????? ???????????? ????????? ??????????:



bool CopyStructs(InputFile* pInFile, unsigned long count)

{

unsigned long i;

m_pStructs = new Structs[count];

for(i = 0; i < count; i++)

{

if(!ReadFromFile(pInFile, &(m_pStructs[i])))

break;

}

}


??? ????? ????? ?????????? ??????? ???????? new[] ? ????? ?++ ?????? ???????? ?? ??, ??? ????? ???:



ptr = malloc(sizeof(type) * count);


???? ???????? count ????? ????????? ?? ????????????, ?? ???????? ?????? ??? ???, ????? ??? ????????? ???????? ????????????. ????? ????? ??????? ????? ??????? ???????? ???????, ??? ??????????, ? ????????? ?????? ??? ???????????. ? ??????????? ?++, ??????? ????? ???????????? ? ??????? Microsoft Visual Studio 2005, ??????????? ?????????? ???????? ??? ??????????? ?????? ???? ??????. ??????????? ???????? ????? ?????????? ?? ?????? ??????????? ??????? calloc, ??????? ????????? ???????? ????? ?? ????????. ? ???? ? ??????? ????????? ?????? ??????, ????????? ? ????????????? ????? ?????: ?????? ?? ???? ??? ????????????, ? ????????? ?? ???????????? ??????. ?? ????????? ?? ???? ?? ????????? ? ????? 3.

??? ??? ??? ????? ????????? ???????????? ??????:



#define MAX_BUF 256

void BadCode(char* input)

{

short len;

char buf[MAX_BUF];

len = strlen(input);

// ???????, ?? ????? ???????????? strcpy ?????????

if(len < MAX_BUF)

strcpy(buf, input);

}


?? ?????? ??????, ??? ??????, ?? ??? ??? ?? ?? ????? ???? ????? ?????? ?? ??????. ?????? ?? ??????? ?? ?????????? ???????????? ????? ????? ? ????? 3, ? ???? ???????, ??? ???????? ?????? ????? ??? signed int. ???? ????? ??????? ?????? (?????? input) ????????? 32?, ?? ?????????? len ?????? ????????????, ??? ????? ????????? ?? ???? int ? ??????????? ????? ? ???????? ?????? MAX_BUF, ??? ???????? ? ????????????. ??? ???? ?????? ?????????, ???? ????? ?????? ??????????? 64?. ? ???? ?????? ?? ????? ?????? ????????: len ??????????? ????????? ????????????? ??????. ???????? ?????? ??????????? ? ????????? ?????????? ??? ???????? ???????? ??? ??????? ??? size_t. ??? ???? ??????? ???????? ??????????? ? ???, ??? ??????? ?????? ????? ?? ????????????? ?????. ??? ??? ????? ????????? ???????????? ???:



const size_t MAX_BUF = 256;

void LessBadCode(char* input)

{

size_t len;

char buf[MAX_BUF];

len = strlen(input);

// ???????, ?? ????? ???????????? strcpy ?????????

if(len < MAX_BUF)

strcpy(buf, input);

}





??????????? ?????


? ???? ?????? ????? ??????? ???????????? ????? ?????. ???? ?? ????????? ????????? ?????? ???????????? ?????? ????? ????????????? ??????? ?????? ?? ???????? ????????? strn? ??? ?????????? ?????? ??????????? ?? ???? ??????, ?? ????? ????? ?? ????????? ?????????????? ??????.

?????? ??? ?????? ? ????????? ??????? ????? ???? ????? ?? ??????, ??? ???????????? ??????, ???? ????????????? ? ??????? ?????? ?? ????????. ?????? ????? ?????? ?????? ?? ??????? ?? ? ?????? ????????.

????????? ???????????? ?????? ???????? ?????? ? ?????? ??? ???????? ?????? ?? ???????. ???? ????????? ?????? ????? ??? ???????? ????????? ?????? ??????? ? ?? ?? ?????????, ??? ?? ??????????? ??????????? ?????????, ?? ???????? ?????? ?? ????????????? ?????? ? ??????. ??? ???? ?? ?????? ?????????? ????? ?????????? ?????????, ?? ????? ???? ??????? ????????? ??????? ??????, ? ??? ?????? ?? ??? ??? ???? ??????????????? ???????????? ??????.




??? ?????? ??????


??? ?? ??? ????? ???????? ???????? ? ?????? ???????:

? ????? ??????? ??????, ???? ?? ?? ????, ?? ????? ??? ?? ????????? ??????;

? ???????? ?????? ?? ?????????????? ?????????? ??????? ?????? ?? ?????????? ?????????;

? ????????????? ???????????? ??????? ?????? ?? ????????;

? ????????????? ?????????????? ???????? ??? ?????????? ??????? ?????? ??? ????? ????????? ?????? ? ???.




????????? ?????? ?? ????? ??????? ????


?????????? ??????????? ????? ????? ?? ????? ??????? ???? ????? ???? ??? ?????? ?????, ??? ? ????? ??????. ????? ????? ???????????????? ??? ?????? ???????????? ??????? ?????? ?? ????????. ???? ????? ? ????, ??? ?? ?????? ????? ????? ????, ??? ??????? ?????????? ?????????, ?? ??? ???? ??????????, ??? ?????? ????? ?????????? ???? ? ?????????? ???????. ??????????? ?????????, ??????????? ??? ??????????? ???? ? ????? ???????? ????????????? ?? ?????????? ???????, ?????? ????? ??? (?? ????? ??????? ?? ????? ????? ????????, ???????? ??? ??????????? ??????), ???? ??? ???????? ????????? ??????????? ????????? ????? ??????????.

???????? ????? ?????, ????????, ??????? ?????????? ?????? ???????????. ???? ?? ????????? ?????????? ??????? strcpy, strcat, sprintf ? ?? ???????? ?? ???????????? ??????, ?? ?????????? ?????? ??? ????? ? ????, ??? ??? ???????????. ?? ?????? ? ????, ??? ????????? ?????????? ????????? ??? ???????? ?????????????? ?????????? ??????? ?????????? ??? ????? ?.

??????? ???????? ???????????? ????. ????? ?????? ??? ??????, ????? ??????? ? ??????????? ???????????? ?????, ? ??? ?????? ???? ? ????? 3. ?????? ????? ? ????????? ???? ????, ??? ???????????? ????????? ??????, ? ????? ?????????, ? ??????? ????? ?????????????? ???????? ?????????? ?????? ??????.

????????? ?????? ??????? ? ???, ????? ??????????, ??? ???????????? ??? ??????????? ?? ???????????? ??????, ??????? ? ????? ????? ? ?????????? ? ????? ?? ???? ????????. ????? ????? ?????, ??? ?????? ????? ?????????????? ?????????.




????????????


????? ?? ???????? ??????????? ??????? ???????? ????????????????? ???????????? (fuzz testing), ????? ?? ???? ???????? ????????????? ??????. ?????????? ????????? ????? ??????? ????? ? ???????????? ?? ?????????? ??????????. ???????? ???????? ?? ???? ???????????: ?????? ????????? ???????????? ???????? ??????? ?????? ???????? ????. ????????, ? ????? ????? ????????? ???????????, ??? ????? ??????? ?????? ?????? ???? ?????? 260 ??????, ? ? ?????? ????? ?????????? ????? ?????? 256. ???? ?? ???????? ?? ???? ????? ??????? ??????, ?? ???, ???????, ????? ??????????, ?? ????? ??????? ????? ? ???????????????? ????????? ????? ?????? ????????. ????? ???????? ????? ?????, ????????? ??? ???????????? ??????? ?????? ??? ??????? ?????? ????????? ???????.

????? ????? ???????? ?? ?????, ??? ???????????? ????? ?????? ????? ????????. ???????? ????? ???, ????? ??? ?? ??????????????? ??????, ? ?????? ???????? ????????? ?? ??????????? ???????????? ??????: ????????? ???????????? ??????, ????? ????? +1 = 0.

??? ?????????????????? ???????????? ????? ??????? ??????????? ???????? ?????? ?????????. ? ?????????? ?????? ????? ????????? ???????????, ??????? ???????? ????? ?????????? ????????? ? ????? ???????? ?????????? ???????, ??? ??????? ???????? ???????. ? ?????? ???????, ??????????? ??????????? ???????? ? ?????????? ?????? ?????????? ??? ??? ??????????? ????? ?????. ? ??????????? ?? ????????????? ?????????????? ?????? ? ???????????? ??????? ?? ?????? ????? ???????? ????? ??????? ???????? ??????????? ????.

???? ?? ??????????? ??????????? ??? ???????? ??????? ??????, ?? ????? ????? ??????? ?? ????? ?????:



assert(len < MAX_PATH);


? ?????????



if(len >= MAX_PATH)

{

assert(false);

return false;

}


?????? ??????? ??????????? ????????? ? ??????? ????????? ??????? ??????????? ?????? ??? ?????? ? ???????, ???????? AppVerifier ??? Windows (??. ?????? ? ??????? ??????? ????????). ??? ???????? ??????? ??????, ????????? ? ????????? ??? ?????????????? ????????????? ??????.




??????? ?? ???????? ?????



???? ????????? ????????? ??????? ???????????? ??????, ?????? ?? ???? ?????? ???????? ??????????? ? ?????? (CVE) ?? ????? http://cve.mitre.org. ?????????, ??? ????? ?? ???????? ??? ???? ??????, ? ???? CVE ?? ??????? ?buffer overrim? ?????????? 1734 ??????. ????? ?? ?????????? CERT, ? ??????? ??????????????? ????? ?????? ???????????????? ? ????????? ??????????, ?? ???? ?? ??????? ??? 107 ??????????.




CVE?1999?0042


?????? ?? ???????? ??????: ????????????? ?????? ? ?????????? ???????? IMAP ? POP ?????????????? ????????????. ??? ?? ?????? ????? ???????? ??????????????? ? ????????? CERT ?? ??????? ???1997?09. ???????????? ?????????? ?? ????? ?????????????? ??? ??????? ? ????????, ??????????? ????????? Post Office Protocol (POP) ? Internet Message Access Protocol (IMAP). ????????? ? ??? ?????????? ??????? ? ???, ??? ?????? ??????????? ????? ?? ??? ?????????? ?? ?????????? ??????????, ??????? ???????? ????? ?????????? ????? ???????????? root. ??? ???????????? ????????? ??? ???? ???????? ????? ??????.

??????????? ?????????, ????????? ??? ?????? ???????? ?????? ????? ???????, ?????????? ??????????? ??????? ? ????????? SLMail 2.5 ???????????? Seattle Labs, ? ??? ??????? ????? ?? ???????? www.winnetmag.com/Article/ArticleID/9223/ 9223.html.




CVE?2000?0389 ? CVE?2000?0392


?? CVE?2000?0389: ????????????? ?????? ? ??????? krb_rd_req ? Kerberos ?????? 4 ? 5 ????????? ?????????? ?????????? ???????? ?????????? root?.

?? CVE?2000?0390: ????????????? ?????? ? ??????? krb425_conv_principal ? Kerberos 5 ????????? ?????????? ?????????? ???????? ?????????? root?.

?? CVE?2000?0391: ????????????? ?????? ? ????????? krshd, ???????? ? ?????? Kerberos 5, ????????? ?????????? ?????????? ???????? ?????????? root?.

?? CVE?2000?0392: ????????????? ?????? ? ????????? krshd, ???????? ? ?????? Kerberos 5, ????????? ?????????? ?????????? ???????? ?????????? root?.

??? ?????? ? ?????????? ??????? Kerberos ???????????? ??? ??????????????? ? ????????? CERT ???2000?06 ?? ?????? www.cert.org/advisories/CA?2000?06.html. ???? ???????? ?????? ??????? ??? ????????? ??? ? ???????? ????????? ? ????????????? ??????? ??????? ?????? ?? ???????? (strcat), ????? ? ??? ???????? ?????? ? 2000 ????.




CVE?2002?0842, CVE?2003?0095, CAN?2003?0096


?? CVE?2002?0842:

?????? ??? ?????? ? ????????? ??????? ? ????? ??????????? ??????? mod_dav, ??????????? ??? ???????????????? ????????? ? ?????? ????? (????????, Oracle9i Application Server 9.0.2), ????????? ?????????? ?????????? ????????? ???????????? ???, ??????????? ? URI, ??? ???????? ?????? ?????????? ????? ?502 BadGateway?. ? ?????????? ??????? dav_lookup_uri() ? ????? mod_dav.c ?????????? ????????????? ????????? ??????, ??????? ????? ???????????? ??? ?????? ap_log_rerror().



?? CVE?2003?0095:

???????????? ?????? ? ????????? ORACLE.EXE ??? Oracle Database Server 9i, 8i, 8.1.7 ? 8.0.6 ????????? ?????????? ?????????? ????????? ???????????? ???, ????? ??? ????? ??????? ??? ????????????. ??????? ????? ??????????????? ?? ?????????? ??????????, ?????????????? ??????????? ??????????????, ??? ? ?????????????????? ?? ??????? LOADPSP.



?? CAN?2003?0096:

?????????????? ?????? ???????????? ?????? ? Oracle 9i Database Release 2, Release 1, 8i, 8.1.7 ? 8.0.6 ????????? ?????????? ?????????? ????????? ???????????? ???, (1) ????? ??????? ?????? ?????????????? ? ???????? ????????? ??????? TO_TIMESTAMP_TZ, (2) ????? ??????? ???????? ???????? ????? ? ???????? ????????? ??????? TZ_OFFSET ? (3) ????? ??????? ?????? ? ???????? ????????? DIRECTORY ??????? BFILENAME.



??? ?????? ??????????????? ? ????????? CERT ???2003?05 ?? ?????? www.cert.org/advisories/CA?2003?05.html. ?? ? ? ????? ?????? ? ????????? ????? ???????? ?? ?????? ???????????? ?? ???????? Next Generation Security Software Ltd. ??????? ???????, ??? ?? ????? ????????? ???? ?????????? ????????????????, ???? ?? ???? ??????? ?? ????????.




CAN?2003?0352


?? ???????? ? CVE:

???????????? ?????? ? ????? ?????????? DCOM, ???????????? ? ??????? RPC, ??????????? ? Microsoft Windows NT 4.0,2000, ?? ? Server 2003, ????????? ?????????? ?????????? ????????? ???????????? ???, ??????????? ???????????? ?????????. ???? ??????? ??????????????? ????? Blaster/MSblast/LovSAN and Nachi/Welchia.



??? ???????????? ????????? ???, ??? ??????? ? ???????? ??????????????? ???? ?????? ?????????????? ??????, ??? ???????? ?? ????? ?????????? ???????????? ? ???? ????????. ???????????? ????? ? ????, ??????????????? ??????????? ???????????? ?????? ????? ????????? ????? ??????????? ?????. ?? ????? ??????? ??? ??? ??????? ??????? ?????????????? ?????????? ??????????, ???? ????????? ?? ?????? ??? ???? ???????? ????????? ?????????????. ????????? ??? ????????, ??? ???????????? ? Windows 2003 ????????? ????? ??????????? ????? ? ?????? ?? ???????????? ?????? ????????? ??????????.

????????? ?? ???? ???????? ????? ????????? ?? ????????? www.cert.org/ advisories/CA?2003?23.html ? www.microsoft.com/technet/security/bulletin/MS03?039.asp.




?????????? ?????



???? ? ?????????? ????? ???????????? ?????? ????? ? ???????. ?? ??????? ????????? ???????? ???????? ???? ??????, ? ????? ??? ???????, ??????????? ????????? ????? ?? ???. ??????????, ??? ????? ???????? ???? ?????????.




?????? ??????? ??????? ?????? ?? ????????


??? ??????? ?? ?????? ???????? ???????????? ??????? ???? strcpy, strcat ? sprintf ?? ????????? ?? ?????????. ?????? ????? ??????? ??????????? ?????????. ?????? ? ????, ??? ????????? ?????? ????????? ??????? ?? ????????? ????????? ?????? ???????, ? ????? ????, ??? ??????? ?????????? ????? ?????????? ?????????? ??????????????? ????????????. ? ????? 3 ?? ???????, ??? ?????????? ?? ??? ?????? ??????????? ? ???????????, ??? ????? ?? ??????????. ?? ????? ?????????? ????? ???????? ??????? strsafe, Safe CRT (?????????? ??????? ?????????? ??? ?), ??????? ?????? ? ?????? Microsoft Visual Studio (? ????? ????? ?????? ?????? ????????? ANSI C/C++), ? ??????? strlcat/strlcpy ??? *nix. ????????? ???????? ?? ??, ??? ?????? ??????? ???????????? ????? ?????? ? ????????. ????????? ??????? ???????????, ??? ?????? ????? ??????????? ?????, ?? ??????????? ?????? ??????? ?? ????????? ????? ???????? ?? ????. ???? ?????? ?????????? Microsoft Office ?? ?????? ???????????? ??????? ?????? ?? ???????? ? Office 2003 ???????, ??? ??????????? ???????? (????? ????? ?????? ? ??????? ?? ???? ???????????) ????? ???, ??? ??? ????? ????? ?????? ????? ?????? ??? ?? ?????????????.




??????? ?? ??????????? ??????


??? ???? ??????? ???????????? ?????? ? ??? ?????????????? ??????. ?????????? ? ????? 3 ? ???????????? ????? ????? ? ??????? ? ????? ???? ??? ?????, ??? ??? ?????????? ??????? ?????? ???????????? ?????????????? ??????????.




????????? ????? ? ?????? ? ????????


???????????? ???????? ? ? ??????, ????? ??????????? ??????????? ??????? ?????? ?? ????? ? ?? ?????????????? ????? ?? ??????? ??????? ????? ??????? ? ????. ??? ???? ?? ????? ??????? ??? ??????????? ??????; ?? ???????, ??? ????? ?????? ??????????? ?????? ?? ? ??? ??????, ??? ???? ????????.




??????????? ???????? ? ????? ?++, ? ?? ?


??? ??????????? ??????? ?????? ??????????? і???????, ?? ????? ??????? ?? ????? ???????????? ??????????? ????, ???????? ???? ????????? ?????????? ?? ???????????? ?++. ?? ?????? ?????? ???????????? ???? ?????????????? ?????????????????? STL????????????. ?????? ???????? ???????? ????? ??????????? ??? ? ?????????????? STL, ??, ??? ??????, ????????? ?????? ??????????? (RTFM ? Read The Fine Manual) ????? ???????? ? ????, ???????? ?? ????????????. ???????? ???????? ?????????????????? ?????? ???? ? ??????? ? ????????????? ????????? ??????? std::string ??? std::wstring.




??????????? STL????????????? ?????? ??????????? ????????


??? ?????????????? ???????? ????????? ? ? STL????????????, ???????? vector, ?? ???????? ??????????? ??? ? ???, ??? ?? ??? ?????????? ?????? vector::iterator ???????????? ????? ?? ??????? ??????????. ????????? ? ????????? ???? ????? ??????, ? ????? ????????, ??? STL ???????????? ???????? ????????? ??????????? ????, ?? ?????? ? ????, ??? ??? ??? ?? ?? ???????.




??????????? ????????????? ???????


?? ????? ?????????? ?????????? ??????????? ??? ??????? ???? ?? ?????? C/C++ ?? ??????? ????????? ????????????, ? ??? ????? Coverity, PREfast ? Kloc?work. ? ??????? ??????? ???????? ????????? ??????. ? ?????? Visual Studio .NET 2005 ?????? ????????? PREfast ? ??? ???? ?????????? ??????? ???? ??? ????????? Source code Annotation Language (SAL ? ???? ????????????? ????????? ??????), ??????????? ?????????? ????? ???????, ??? ???????????? ??????. ????? ????? ????????????????? SAL ?? ???????. ? ?????????? ???? ????????? (???????????) ?? ??????, ??? ??????????? ????????? data ? count: ????? data ?????????? count ??????. ?? ??????????? ?? ???? ?????? ?? ????????, ?? ????? ?????? ???? char * and a size_t.



void *DoStuff(char *data, size_t count) {

static char buf[32];

return memcpy(buf, data, count);

}


?? ?????? ??????, ??? ?? ???????? ?????? ??????? (???? ?? ???????, ??? ?? ?????????? ????????? ?? ??????????? ?????, ?? ?????????? ??? ????). ?????? ???? count ?????? 32, ?? ????????? ???????????? ??????. ???? ?? ???? ??? ??? ??????????? ? ??????? SAL, ?? ?????????? ??? ?? ???????? ??? ??????:



void *DoStuff(__in_ecount(count) char *data, size_t count) {

static char buf[32];

return memcpy(buf, data, count);

}


??????????? ??? ???, ??? ?????? ?????????? ?/??? PREfast ????? ? ?????? ????? ?????????? data ? count.




?????????????? ???????? ????



?????????????? ???????? ???? ? ??? ??? ????? ???????????? ? ??????????. ????? ??? ???????? ??????????? ????????????, ?? ? ?????? ???????? ??? ????? ?? ?????. ????? ????????, ??? ??? ???? ???????? ???????? ?????????????? ?????? ?? ???????????? ?????? ???????, ??????? ???????? ? ???????????? ??????, ?????????? ????????????, ??????? ?????????? ?????????? ????? ????? ?????? ???? ?????????. ??? ?? ?????????? ????????? ???????.




?????? ?????


?????? ????? ?????? ???????? ??????? ????? ? ????? ????????? Stack?guard, ????? ??? ???? ?????????? ??????????? Microsoft ? ??????? ????? ??????????? /GS. ? ????? ??????? ???????? ???? ?? ??????? ? ???, ??? ? ???? ????? ?????????? ??????????? ? ??????? ???????? ???????????? ????? ????????. ? ????? ??????????? ??????????? ??? ????????? ????????????? ????? ????? ?????????? ??????? ??????????. ??????????? ????? ??????? ? ???, ??? ?? ????? ??????????? ? ????? ?? ??????? ??????????????????, ? ????? ????, ????????? ??????? ? ?????? ????? ?????. ?????? ?????? ? ??? ????????? ProPolice, ????????? ????????? IBM ??? ?????????? ??????????? Gnu Compiler Collection (GCC). ????? ??????????? ??????? ?????? ???????? ? ???? ?????? ?????.




?????? ?????????? ? ????? ? ????


??? ????????? ??????????? ????????? ?????? ??????, ?? ????? ????????? ?? ?????????????. ????????? ?????????? ??????? ?????????? ????????????? ? ????????? ??? ?? ????. ????????, ??? ????????? ? ?????? Java ? ?#. ????? ????? ????????, ??? ???? ????????? ?????? ????????? ???? ?????????? ????? ??????? ????? ? ????????? ? libc, ????? ??? ?????????? ????????????? ????? ??????????? ????? ??????????? ???????, ?? ?? ?????? ????? ?????? ?? ???????? ??????.

? ?????????, ??????????? ?????????? ?? ??????? ????? ?? ???????????? ??? ???????????, ? ????????? ???????? ??????? ?? ??????????, ???????????? ??????? ? ???? ?? ?????????? ??????. ??????? ???????????? ?? ??????? ????? ?????? ? ???????? ???????? ?? ?????, ?? ??? ????? ??????? ?????????????? ???? ????????? ? ?????????, ??? ??? ????? ????????, ????? ???? ? ???? ???????? ?? ??????????. ??? ????? ????? ????????? ?? ?? ??? ?????????? ? ???????????? ???????, ??????? ???????????? ?????????? ??????. ????????, ???? ??????? ?????????? ???????? Windows ??, ?? ????????? ????? ?? ?????? ? ??????????? AMD Athlon 64 FX ??? ??????????? Windows ?? SP2. ? Windows ??? ?????????? ?????????? Data Execution Protection (DEP ? ?????? ?? ?????????? ??????), ? ?????? ?????? ??? No eXecute (NX).

?? Windows Server 2003 SP1 ????? ???????????? ??? ???????????, ????? ??? ?????????? ??? ??? Linux ? OpenBSD.




?????? ???????


? Writing Secure Code, Second Edition by Michael Howard and David C. LeBlanc (Microsoft Press, 2002), Chapter 5, ?Public Enemy #1: Buffer Overruns?

? ?Defeating the Stack Based Buffer Overflow Prevention Mechanism of Microsoft Windows Server 2003? by David Litchfield: www.ngssoftware.com/papers/ defeating?w2k3?stack?protection.pdf

? ?Non?stack Based Exploitation of Buffer Overrun Vulnerabilities on Windows NT/2000/?л by David Litchfield: www.ngssoftware.com/papers/non?stack?bo?windows.pdf

? ?Blind Exploitation of Stack Overflow Vulnerabilities? by Peter Winter?Smith: www.ngssoftware.com/papers/NISR.BlindExploitation.pdf

? ?Creating Arbitrary Shellcode In Unicode Expanded Strings: The 'Venetian' Exploit? by Chris Anley: www.ngssoftware.com/papers/unicodebo.pdf

? ?Smashing The Stack For Fun And Profit? by Alephl (Elias Levy): www.insecure.org/stf/smashstack.txt

? ?The Tao of Windows Buffer Overflow? by Dildog: www.cultdeadcow.com/ cDc_files/cDc?351/

? Microsoft Security Bulletin MS04?011/Security Update for Microsoft Windows (835732): www.microsoft.com/technet/security/Bulletin/MS04?011 .mspx

? Microsoft Application Compatibility Analyzer: www.microsoft.com/windows/ appcompatibility/analyzer.mspx

? Using the Strsafe.h Functions: http://msdn.microsoft.com/library/en?us/winui/ winui/windowsuserinterface/resources/strings/usingstrsafefunctions.asp

? More Secure Buffer Function Calls: AUTOMATICALLY!: http://blogs.msdn.com/michael_howard /archive/2005/2/3.aspx

? Repel Attacks on Your Code with the Visual Studio 2005 Safe ? and ?++ Libraries: http://msdn.microsoft.com/msdnmag/issues/05/05/SafeCand ? / default.aspx

? ?strlcpy and strlcat ? Consistent, Safe, String Copy and Concatenation by Todd C. Miller and Theo de Raadt: www.usenix.org/events/usenix99/millert.html

? GCC extension for protecting applications from stack?smashing attacks: www.trl. ibm.com/projects/security/ssp/

? PaX: http://pax.grsecurity.net/

? OpenBSD Security: www.openbsd.org/security.html

? Static Source Code Analysis Tools for C: http://spinroot.com/static/




??????


?????????????

? ????????? ?????????? ????? ?????? ? ?????? ?? ???? ????????????? ?????????? ??????? ??? ?????? ?? ???????? ? ????????? ??????.

? ??????????? ????????????? ? ?????????? ?????????? ??????, ???????? ?????? /GS ? ?????????? ProPolice.

? ?????????? ????????? ?????? ?? ???????????? ?????? ?? ?????? ???????????? ???????, ???????? DEP ? ???.

? ???????, ????? ?????? ???????????? ?????????, ? ????????????? ?? ?????????? ???????.

?? ?????????????

? ?? ???????, ??? ?????????? ? ?? ??? ??????? ?? ???, ??? ????? ???? ?????????????? ???????? ??????.

? ?? ??????????? ???????????? ??????? ? ????? ??????????.

????? ????????

? ?? ????????? ????????? ?????? ??????????? C/C++, ????????? ???????????? ???????? ? ???????????? ??? ????? ????????? ??????.

? ? ??????????? ???????? ???????????? ??????? ?? ?????? ????????.

? ?? ????????????? ????? ? ???????????? ??????? ?? ?????????? ?++ ?????? ?????????? ?????????????? ??????? ? ??? ?????? ?? ????????.




???? 2.

??????, ????????? ? ????????? ???????





? ??? ??????? ????


? ????????? ??????? ?????? ????? ????? ????, ??????????? ? ????????? ????. ???? ?? ?????? ????????? ?? ??? ???? ??????? ??????? ??????? (Lamagra Arga?mal) 23 ???? 2000 ???? (www.securityfocus.com/archive/1/66842). ??????? ????? ??????? ??????? (Pascal Bouchareine) ??? ????? ??????????? ????????? (www.securityfocus.eom/archive/l/70552). ? ????? ?????? ????????? ????? ?????? (Mark Slemko) (www.securityfocus.com/archive/1 /10383) ???? ??????? ???????? ???????? ??????, ?? ? ??????????? ?????????? ? ?????? ???? ?? ????.




????? ???????????????? ?????????.


????? ???????????? ??? ???????.

?????????? ??? ????? ???????, ????? ?????? ????????? ?????? (https://www.litres.ru/devid-leblank/19-smertnyh-grehov-ugrozhauschih-bezopasnosti-programm/) ?? ??????.

????????? ???????? ????? ????? ?????????? ?????? Visa, MasterCard, Maestro, ?? ????? ?????????? ????????, ? ?????????? ?????????, ? ?????? ??? ??? ???????, ????? PayPal, WebMoney, ??????.??????, QIWI ???????, ????????? ??????? ??? ?????? ??????? ??? ????????.



Если текст книги отсутствует, перейдите по ссылке

Возможные причины отсутствия книги:
1. Книга снята с продаж по просьбе правообладателя
2. Книга ещё не поступила в продажу и пока недоступна для чтения

Навигация